#include <stdio.h>
#include <stdlib.h>
#include <time.h>

//生成随机数
int main90()
{
    //随机数种子，设置好
    srand((unsigned int)time(NULL));

    FILE *p = fopen("a.txt", "w");
    if(p)
    {
        int i;
        for (i = 0; i< 100; i++)
        {
            //定义一个随机数,随机数小于255,就与255取余
            int seq = rand() % 256;
            //把整数转换成字符串
            char buf[100] = { 0 };
            sprintf(buf, "%d\n", seq);
            //把字符串写入到文件
            fputs(buf, p);
        }
        fclose(p);
    }
    return 0;
}

//交换两个int整数
void swap(int *a, int *b)
{
    int tmp = *a;
    *a = *b;
    *b = tmp;
}

//冒泡排序
//传入一个一维数组，和一维数组的成员个数
//无返回值，直接把数组排序了
void bubble(int *a, int n)
{
    int i, j;
    for(i = 0; i < n; i++)
    {
        for (j = 1; j < n - i; j++)
        {
            if (a[j - 1] > a[j])
            {
                swap(&a[j - 1], &a[j]);
            }
        }
    }
}



int main()
{
    FILE *p = fopen("a.txt", "r");

    //把文件的每一行当成一个字符串读出来
    //然后把每个字符串转化为整数
    //把这些整数写入到一个数组里面去
    int array[100] = { 0 };
    int index = 0;
    while(!feof(p))
    {
        char buf[1024] = { 0 };
        fgets(buf, sizeof(buf), p);
        array[index] = atoi(buf);//把读出来的字符串转化为整数
        index++;
    }
    fclose(p);

    //给数组排序
    bubble(array, 100);

    //把数组写入到转化为字符串
    //然后写入到文件里面去
    p = fopen("a.txt", "w");
    int i;
    for(i = 0; i < 100; i++)
    {
        char buf[1024] = { 0 };
        sprintf(buf, "%d\n", array[i]);
        fputs(buf, p);
    }
    fclose(p);

    return 0;
}
